#ifndef MODULE_H
#define MODULE_H

#include"globalheader.h"
#include"enseignant.h"
	class Module{
	
		private:
			const int idModule_;
			const std::string titre_;
			int heureCM_;
			int heureTD_;
			int heureTP_;
			Enseignant* responsable_;
			
		public:
			
			Module(const int& idmod, const std::string& titre, const int& heureCM, const int& heureTD, const int& heureTP, Enseignant* responsable);
			
			int getIdMod() const;
			std::string getTitre() const;
			int getHTD() const;
			int getHCM() const;
			int getHTP() const;
			Enseignant* getEnsResp() const;
			
			void setEnsResp(Enseignant* e);
			void setHTD(const int& h);
			void setHTP(const int& h);
			void setHCM(const int& h);

            bool operator<(const Module& e) const;
	};

	std::ostream& operator<<(std::ostream& os, const Module& mod);

     class ComparatorModule
    {
        bool operator()(const Module& e1, const Module& e2);
    };

typedef std::set<Module*, point_less<Module> > ensModule;

    class EnsembleMod
    {
    private:
        ensModule listModule_;

    public:
        EnsembleMod();
        void ajoutModule(Module* mod);
        void ajoutEnsModule(ensModule eMod);

        void supprModule(Module* mod);



        ensModule getEnsembleMod();
    };
#endif
